
	

			List p=12f675
			Include "p12f675.inc"
		  	__CONFIG 0X3F95

; An internal oscillator with clock out is in use. GP0 is the output (Pin 7) and the inputs are GP2,3& 5.
; GP4 is used as the clock out. The inputs have a 10k resistor to +5 volts (pull up) and are momentarily to
; groud to initiate the sequence. Memory clear is internal. GP1 is not used but could be activated for a fourth
; message.

COUNT1	EQU	0x22
COUNT2	EQU	0x23
COUNT3	EQU	0x24
COUNT4	EQU	0x25




		ORG	 0x000
		GOTO MAIN
		ORG	 0x004
		GOTO MAIN

;**********************DOT Generator*********

ONE

		MOVLW	.45		; Dot Timing and Dot/Dash Spacing
		MOVWF	COUNT1
L1		MOVLW	.12
		MOVWF	COUNT2
L2		MOVLW	.60
		MOVWF	COUNT3
L3		DECFSZ	COUNT3,1
		GOTO	L3
		DECFSZ	COUNT2,1
		GOTO	L2
		DECFSZ	COUNT1,1
		GOTO	L1
		MOVLW	.150
		MOVWF	COUNT1
LP98	DECFSZ	COUNT1,1
		GOTO	LP98
		NOP
		RETLW	0
;**********************Dash Generator / Letter Spacing************

TWO

		MOVLW	.90		; Dash Timing and Letter Spacing
		MOVWF	COUNT1
L4		MOVLW	.18
		MOVWF	COUNT2
L5		MOVLW	.60
		MOVWF	COUNT3
L6		DECFSZ	COUNT3,1
		GOTO	L6
		DECFSZ	COUNT2,1
		GOTO	L5
		DECFSZ	COUNT1,1
		GOTO	L4
		MOVLW	.150
		MOVWF	COUNT1
LP99	DECFSZ	COUNT1,1
		GOTO	LP99
		NOP
		RETLW	0

; ******************Extra DELAy WORD SPACE************************

THREE

		CALL	TWO
		CALL	TWO

		RETURN
;*************************Dash Generator**********************
DAH
		BSF		GPIO,GP0		;     
		CALL	TWO				;	Dash
		BCF		GPIO,GP0
		CALL	ONE

		RETURN

;*************************Dot Code***********************

DI
		BSF		GPIO,GP0
		CALL	ONE				;	Dot	
		BCF		GPIO,GP0
		CALL	ONE
		RETURN

;****************BREAK*****************************************
BREAK
		CALL    DAH             ;DASH
		CALL	DI				;DOT
		CALL	DI				;DOT
		CALL	DI				;DOT
		CALL	DAH				;DASH
		CALL	TWO

		RETURN
;**********************Comma**********************************
COMMA

		CALL	DAH		;DASH --..--
		CALL	DAH		;DASH
		CALL	DI		;DOT
		CALL	DI		;DOT
		CALL	DAH		;DASH
		CALL	DAH		;DASH
		CALL	TWO

		RETURN
; *******************A******************

XXA		CALL	DI			;A .-
		CALL	DAH
		RETURN
;***********************B*****************
XXB		CALL	DAH			;B -...
		CALL	DI
		CALL	DI
		CALL	DI
		RETURN
;************************C**************************
XXC		CALl	DAH			;C -.-.
		CALL	DI
		CALL	DAH
		CALL	DI
		RETURN
;****************************D**************
XXD		CALL	DAH			;D -..
		CALL	DI
		CALL	DI
		RETURN
;**********************E*******************
XXE		CALL	DI			;E .
		RETURN
;**********************F****************
XXF		CALL	DI			;F ..-.
		CALL	DI
		CALL	DAH
		CALL	DI
		RETURN
;*************************G*************
XXG		CALL	DAH			;G --.
		CALL	DAH
		CALL	DI
		RETURN
;***************************H**********
XXH		CALL	DI			;H ....
		CALL	DI
		CALL	DI
		CALL	DI
		RETURN
;**********************I*********
XXI		CALL	DI			;I ..
		CALL	DI
		RETURN
;************************J***************
XXJ		CALL	DI			;J .---
		CALL	DAH
		CALL	DAH
		CALL	DAH
		RETURN
;*************************K***************
XXK		CALL	DAH			;K -.-
		CALL	DI
		CALL	DAH
		RETURN
;************************L***********************
XXL		CALL	DI			;L .-..
		CALL	DAH
		CALL	DI
		CALL	DI
		RETURN
;***********************M*********************
XXM		CALL	DAH			;M --
		CALL	DAH
		RETURN
;***********************N*********************
XXN		CALL	DAH			;N -.
		CALL	DI
		RETURN
;**********************O********************
XXO		CALL	DAH			;O ---
		CALL	DAH
		CALl	DAH
		RETURN
;*********************P***************
XXP		CALL	DI			;P .--.
		CALL	DAH
		CALL	DAH
		CALL	DI
		RETURN
;********************Q**************************
XXQ		CALL	DAH			;Q --.-
		CALL	DAH
		CALL	DI
		CALL	DAH
		RETURN
;******************************R*************
XXR		CALL	DI			;R .-.
		CALL	DAH		
		CALL	DI
		RETURN
;***************************S*************
XXS		CALL	DI			;S ...
		CALL	DI
		CALL	DI
		RETURN
;********************T*********************
XXT		CALL	DAH			;T -
		RETURN
;***********************U***************
XXU		CALL	DI			;U ..-
		CALL	DI
		CALL	DAH
		RETURN
;***********************V**************
XXV		CALL	DI			;V ...-
		CALL	DI
		CALL	DI
		CALL	DAH
		RETURN
;*************************W******************
XXW		CALL	DI			;W .--
		CALL	DAH	
		CALL	DAH
		RETURN
;************************X******************
XXX		CALL	DAH			;X -..-
		CALL	DI
		CALL	DI
		CALL	DAH
		RETURN
;************************Y***************************
XXY		CALL	DAH			;Y -.--
		CALL	DI
		CALL	DAH
		CALL	DAH
		RETURN
;***********************Z********************
XXZ		CALL	DAH			;Z --..
		CALL	DAH
		CALL	DI
		CALL	DI
		RETURN
;************************0*****************
XX0		CALL	DAH			;0 -----
		CALL	DAH
		CALL	DAH
		CALL	DAH
		CALL	DAH
		RETURN
;************************1***********************
XX1		CALL	DI			;1 .----
		CALL	DAH
		CALL	DAH
		CALL	DAH
		CALL	DAH
		RETURN
;***************************2************************
XX2		CALL	DI			;2 ..---
		CALL	DI
		CALL	DAH
		CALL	DAH
		CALL	DAH
		RETURN
;**************************3****************
XX3		CALl	DI			;3 ...--
		CALL	DI
		CALL	DI
		CALL	DAH
		CALL	DAH
		RETURN
;*************************4******************
XX4		CALL	DI			;4 ....-
		CALL	DI
		CALL	DI
		CALL	DI
		CALL	DAH
		RETURN
;***********************5**********************
XX5		CALL	DI			;5 .....
		CALL	DI
		CALL	DI
		CALL	DI
		CALL	DI
		RETURN
;*********************6*****************
XX6		CALL	DAH			;6 -....
		CALL	DI
		CALL	DI
		CALL	DI
		CALL	DI
		RETURN
;*******************7*******************
XX7		CALL	DAH			;7 --...
		CALL	DAH
		CALL	DI
		CALL	DI
		CALL	DI
		RETURN
;***************************8**************
XX8		CALL	DAH			;8 ---..
		CALL	DAH		
		CALL	DAH
		CALL	DI
		CALL	DI
		RETURN
;****************************9***********
XX9		CALL	DAH			;9 ----.
		CALL	DAH
		CALL	DAH
		CALL	DAH
		CALL	DI
		RETURN		
;*************************Initialization: Port GP0 is the output**************************
MAIN
		CALL	0x3FF				; Call up internal calibration
		BSF		STATUS,RP0		    ; hange to Bank 1
		MOVWF	OSCCAL				; set up for RC oscillator
		CLRF	GPIO			    ; Initiate GPIO
		MOVLW	02Dh				; Set  GPIO <5, 4:3, 2,0> to Digital I/O
		MOVWF	CMCON			    ; Turn Off Comparator
		CLRF	ANSEL			    ; Turn off Analog Select
		MOVLW	02Ch			    ; GP <5,3,2> are the inputs
		MOVWF	TRISIO			    ; GP <0> is the output GP0 = Pin #7
		BCF		STATUS,RP0		    ; Change back to Bank 0
		BCF		GPIO,GP0
		GOTO	loop
		
; If you were to turn on GP1 as an input then the codes would change as follows 02Dh (45) would change 02Fh (47)
; and the 02Ch (44) would change to 02E (46).		
;******************************************************************************************************		
		
;Note this is a rework of what is in the data sheet about turning on and off the outputs --this works and the one on the data 
;sheet doesn't. Think about it --you have to shift to bank 1 do all of the actions and shift back to bank 0. T
		
;****************************************************************************************888
		
loop	
       
		btfss   GPIO,GP2       	;GP2 ON? GP2 = Pin #5
        call    CQ 	       		;Yes. Call CQ
		btfss	GPIO,GP3	   	;GP3 ON? GP3 = Pin #4
		call	TNX	   			;Yes. Call Tnx
		btfss	GPIO,GP5		;GP5 ON? GP5 = Pin #2
		call	RIG				;Yes. Call Rig		
        goto    loop       	   	;Retry
		
; Adding GP1 to the scan you would add two lines: btfss   GPIO,GP1 and   call   seventhree right after call   rig
; and before goto   loop.

;*******************************************************

CQ	
		

		CALL	THREE
		CALL	XXC			;C
		CALL	TWO
		CALL	XXQ			;Q
		CALL	THREE
		CALL	XXC			;C
		CALL	TWO
		CALL	XXQ			;Q
		CALL	THREE
		CALL	XXC			;C
		CALL	TWO
		CALL	XXQ			;Q
		CALL	THREE
		CALL	XXD			;D	
		CALL	TWO
		CALL	XXE			;E
		CALL 	THREE
		CALL	XXW			;W
		CALL	TWO
		CALL	XX6			;6
		CALL	TWO
		CALL	XXJ			;J
		CALL	TWO
		CALL	XXF			;F
		CALL	TWO
		CALL	XXR			;R
		CALL	TWO
		CALL	THREE
		CALL	XXW			;W
		CALL	TWO
		CALL	XX6			;6
		CALL	TWO
		CALL	XXJ			;J
		CALL	TWO
		CALL	XXF			;F
		CALL	TWO
		CALL	XXR			;R
		CALL	TWO
		CALL	THREE
		CALL	XXK			;K
		CALL	TWO
  		
		RETURN
;************************************************************************************************************	
		
TNX					;TNX OM UR RST IS 599 599, NAME IS PETE PETE, QTH NEAR SEATTLE SEATTLE, WA BACK K
		

		CALL  	THREE
		CALL	XXT		;T -
		CALL	TWO
		CALL	XXN		;N	
		CALL	TWO
		CALL	XXX		;X
		CALL 	THREE
		CALL	XXO		;O
		CALL	TWO
		CALL	XXM		;M
		CALL    THREE
		CALL 	XXU		;U
		CALL	TWO
		CALL	XXR		;R
		CALL    THREE
		CALL	XXR		;R
		CALL	TWO
		CALL	XXS		;S
		CALL	TWO
		CALL	XXT		;T 
		CALL	THREE
		CALL	XXI		;I		
		CALL	TWO
		CALL	XXS		;S
		CALL 	THREE
		CALL	XX5		;5
		CALL	TWO
		CALL	XX9		;9
		CALL	TWO
		CALL	XX9		;9
		CALL	THREE
		CALL	XX5		;5
		CALL	TWO
		CALL	XX9		;9
		CALL	TWO
		CALL	XX9		;9
		CALL	THREE

		
		CALL	XXN			;N
		CALL	TWO
		CALL	XXA			;A
		CALL	TWO
		CALL	XXM			;M
		CALL	TWO
		CALL	XXE			;E
		CALL	THREE
		CALL	XXI			;I
		CALL    TWO
		CALL	XXS			;S
		CALL	THREE
		CALL	XXP			;P
		CALL 	TWO
		CALL	XXE			;E
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXE			;E
		CALL	THREE
		CALL	XXP			;P
		CALL 	TWO
		CALL	XXE			;E
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXE			;E
		CALL	THREE
	
		
		CALL	XXQ			;Q
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXH			;H
		CALL	THREE
		CALL	XXI			;I
		CALL	TWO
		CALL	XXS			;S
		CALL	THREE
		CALL	XXN			;N
		CALL	TWO
		CALL	XXE			;E
		CALL	TWO
		CALL	XXA			;A
		CALL	TWO
		CALL	XXR			;R
		CALL	THREE
		CALL	XXS			;S
		CALL	TWO
		CALL	XXE			;E
		CALL	TWO
		CALL	XXA			;A
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXL			;L
		CALL	TWO
		CALL	XXE			;E
		CALL 	THREE
		CALL	XXS			;S
		CALL	TWO
		CALL	XXE			;E
		CALL	TWO
		CALL	XXA			;A
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXT			;T
		CALL	TWO
		CALL	XXL			;L
		CALL	TWO
		CALL	XXE			;E
		CALL 	THREE
		CALL	COMMA
		CALL	XXW			;W
		CALL	TWO
		CALL	XXA			;A
		CALL	THREE

		CALL	XXB			;BACK
		CALL	TWO
		CALL	XXA
		CALL	TWO
		CALL	XXC
		CALL	TWO
		CALL	XXK

		CALL	THREE

		CALL	XXK			;K
		
		RETURN

;**********************************************************************************************

RIG   						;  Rig is homebrew transceiver 20w Ant is wire beam back K
 	
		CALL	THREE
		CALL	XXR			;RIG
		CALL	TWO
		CALL	XXI
		CALL	TWO
		CALL	XXG
		CALL	THREE

		CALL	XXI			;IS
		CALL	TWO
		CALL	XXS
		CALL	THREE

		CALL	XXH			;HOMEBREW
		CALL	TWO
		CALL	XXO
		CALL	TWO
		CALL	XXM
		CALL	TWO
		CALL	XXE
		CALL	TWO
		CALL	XXB
		CALL	TWO
		CALL	XXR
		CALL	TWO
		CALL	XXE
		CALL	TWO
		CALL	XXW
		CALL	THREE

		CALL	XXX			;XCVR
		CALL	TWO
		CALL	XXC
		CALL	TWO
		CALL	XXV
		CALL	TWO
		CALL	XXR
		CALL	THREE

		CALL	XX2			;20W
		CALL	TWO
		CALL	XX0
		CALL	TWO
		CALL	XXW
		CALL	THREE

		CALL	XXA			;ANT 
		CALL	TWO
		CALL	XXN
		CALL	TWO
		CALL	XXT
		CALL 	THREE

		CALL	XXI			;IS
		CALL	TWO
		CALL	XXS
		CALL	THREE

		CALL	XXA			;A
		CALL	THREE

		CALL	XXW			;WIRE
		CALL	TWO
		CALL	XXI
		CALL	TWO
		CALL	XXR
		CALL	TWO
		CALL	XXE
		CALL	THREE

		CALL	XXB			;BEAM
		CALL	TWO
		CALL	XXE
		CALL	TWO
		CALL	XXA
		CALL	TWO
		CALL	XXM
		CALL	THREE

		CALL	XXB			;BACK
		CALL	TWO
		CALL	XXA
		CALL	TWO
		CALL	XXC
		CALL	TWO
		CALL	XXK
		CALL	THREE

		CALL	XXK			;K over
		CALL    THREE






		RETURN
;***********************************************
 
SEVENTHREE			;Not Implemented
		RETURN
;****************************************************************

MSG6			;NOT Implemented

		RETURN
;*********************************************************************
		

		End
